package com.example.design.function;

import java.util.ArrayList;
import java.util.function.Predicate;

/**
 * 断言型接口
 */
public class TestPredicate {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(12);
        list1.add(11);
        list1.add(120);
        list1.add(111);
        list1.add(67);
        list1.add(88);
        // 1)客户1 : 要求容器中的所有数, 都能被2整除
        System.out.println(usePredicate(list1,x->x%2==0));// [12, 120, 88]
 
        // 2)客户2 : 要求所有的数据都不大于100
        System.out.println(usePredicate(list1,x->x < 100));// [12, 11, 67, 88]
    }
    
    /*
    * 对客户提交的数据进行过滤处理
    * */
    public static ArrayList<Integer> usePredicate(ArrayList<Integer> list1, Predicate<Integer> pre){
        ArrayList<Integer> list = new ArrayList<>();
        for(Integer i : list1){
            //过滤处理，符合条件的数据放到新集合中
            if(pre.test(i)){
                list.add(i);
            }
        }
        //返回新集合
        return list;
    }
}